package gui;




import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import bean.RodamientoVO;
import bean.IdRodamientoVO;
import cont.ControladorVistas;
import bean.StockVO;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;



/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class ABMRodamientos extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField txtCodigo;
	private JTextField txtCaracteristicas;
	private JTextField txtMarca;
	private JTextField txtTipo;
	private JTextField txtCodigoPropietario;
	private JTextField txtMedidaB1;
	private JTextField txtMedidaB2;
	private JTextField txtMedidaH;
	private JTextField txtPrecio;
	private JTextField txtCantidad;
	private JTextField txtLote;
	private JTextField txtPuntoDePedido;
	
	private ControladorVistas controladorVista;
	private JTextField txtOrigen;
	private JTable jTableRodamientos;
	private JScrollPane jScrollRodamiento;
	
	private String codigo;	
	private String marca;
	private String caracteristica;
	private String origen;
	

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ABMRodamientos frame = new ABMRodamientos();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public ABMRodamientos() {		
		
		
		this.setTitle("ABM Rodamiento");		
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 633, 445);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		contentPane.setPreferredSize(new java.awt.Dimension(734, 411));

		JLabel lblCodigo = new JLabel("Codigo");
		lblCodigo.setBounds(10, 29, 108, 14);
		contentPane.add(lblCodigo);
		
		JLabel lblCaracteristica = new JLabel("Caracteristica");
		lblCaracteristica.setBounds(10, 54, 108, 14);
		contentPane.add(lblCaracteristica);
		
		JLabel lblMarca = new JLabel("Marca");
		lblMarca.setBounds(10, 79, 103, 14);
		contentPane.add(lblMarca);
		
		JLabel lblTipo = new JLabel("Tipo");
		lblTipo.setBounds(10, 104, 108, 14);
		contentPane.add(lblTipo);
		
		JLabel lblCodigoPropietario = new JLabel("Codigo Propietario");
		lblCodigoPropietario.setBounds(10, 129, 101, 14);
		contentPane.add(lblCodigoPropietario);
		lblCodigoPropietario.setText("Codigo Prop.");

		JLabel lblMedidaB_2 = new JLabel("MedidaB1");
		lblMedidaB_2.setBounds(10, 154, 103, 14);
		contentPane.add(lblMedidaB_2);
		
		JLabel lblMedidab_2 = new JLabel("MedidaB2");
		lblMedidab_2.setBounds(10, 179, 97, 14);
		contentPane.add(lblMedidab_2);
		
		JLabel lblMedidah = new JLabel("MedidaH");
		lblMedidah.setBounds(10, 204, 97, 14);
		contentPane.add(lblMedidah);
		
		JLabel lblPrecio = new JLabel("Precio");
		lblPrecio.setBounds(10, 229, 103, 14);
		contentPane.add(lblPrecio);
		
		JLabel lblCantidad = new JLabel("Cantidad");
		lblCantidad.setBounds(10, 254, 91, 14);
		contentPane.add(lblCantidad);
		
		JLabel lblLote = new JLabel("Lote");
		lblLote.setBounds(10, 279, 97, 14);
		contentPane.add(lblLote);
		
		JLabel lblPuntoDePedido = new JLabel("Punto De Pedido");
		lblPuntoDePedido.setBounds(10, 304, 103, 14);
		contentPane.add(lblPuntoDePedido);
		
		txtCodigo = new JTextField();
		txtCodigo.setBounds(125, 26, 86, 20);
		contentPane.add(txtCodigo);
		txtCodigo.setColumns(10);
		
		txtCaracteristicas = new JTextField();
		txtCaracteristicas.setBounds(125, 51, 86, 20);
		contentPane.add(txtCaracteristicas);
		txtCaracteristicas.setColumns(10);
		
		txtMarca = new JTextField();
		txtMarca.setBounds(125, 76, 86, 20);
		contentPane.add(txtMarca);
		txtMarca.setColumns(10);
		
		txtTipo = new JTextField();
		txtTipo.setBounds(125, 101, 86, 20);
		contentPane.add(txtTipo);
		txtTipo.setColumns(10);
		
		txtCodigoPropietario = new JTextField();
		txtCodigoPropietario.setBounds(125, 126, 86, 20);
		contentPane.add(txtCodigoPropietario);
		txtCodigoPropietario.setColumns(10);
		
		txtMedidaB1 = new JTextField();
		txtMedidaB1.setBounds(125, 151, 86, 20);
		contentPane.add(txtMedidaB1);
		txtMedidaB1.setColumns(10);
		
		txtMedidaB2 = new JTextField();
		txtMedidaB2.setBounds(125, 176, 86, 20);
		contentPane.add(txtMedidaB2);
		txtMedidaB2.setColumns(10);
		
		txtMedidaH = new JTextField();
		txtMedidaH.setBounds(125, 201, 86, 20);
		contentPane.add(txtMedidaH);
		txtMedidaH.setColumns(10);
		
		txtPrecio = new JTextField();
		txtPrecio.setBounds(125, 226, 86, 20);
		contentPane.add(txtPrecio);
		txtPrecio.setColumns(10);
		
		txtCantidad = new JTextField();
		txtCantidad.setBounds(125, 251, 86, 20);
		contentPane.add(txtCantidad);
		txtCantidad.setColumns(10);
		
		txtLote = new JTextField();
		txtLote.setBounds(125, 276, 86, 20);
		contentPane.add(txtLote);
		txtLote.setColumns(10);
		
		txtPuntoDePedido = new JTextField();
		txtPuntoDePedido.setBounds(125, 301, 86, 20);
		contentPane.add(txtPuntoDePedido);
		txtPuntoDePedido.setColumns(10);
		
		JButton btnAgregarModificar = new JButton("Agregar/Modificar");
		btnAgregarModificar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0)
			{
				controladorVista.agregarRodamiento(ObtenerRodamientoVO());
				
			}
		});
		btnAgregarModificar.setBounds(10, 373, 201, 23);
		contentPane.add(btnAgregarModificar);
		
		JPanel panelRodamientosLista = new JPanel();
		panelRodamientosLista.setBounds(272, 29, 314, 332);
		contentPane.add(panelRodamientosLista);
		panelRodamientosLista.setLayout(null);
		
		jScrollRodamiento = new JScrollPane();
		jScrollRodamiento.setBounds(10, 11, 294, 310);
		panelRodamientosLista.add(jScrollRodamiento);
		
		JLabel lblOrigen = new JLabel("Origen");
		lblOrigen.setBounds(10, 329, 97, 14);
		contentPane.add(lblOrigen);
		
		txtOrigen = new JTextField();
		txtOrigen.setBounds(125, 332, 86, 20);
		contentPane.add(txtOrigen);
		txtOrigen.setColumns(10);		
		
		this.setVisible(true);
	}
	
	private RodamientoVO ObtenerRodamientoVO()
	{
		RodamientoVO r = new RodamientoVO();		
		IdRodamientoVO i = new IdRodamientoVO();
		
		i.setCaracteristica(txtCaracteristicas.getText());
		i.setCodigo(txtCodigo.getText());
		i.setMarca(txtMarca.getText());
		i.setOrigen(this.txtOrigen.getText());
		
		r.setCod_propietario(txtCodigoPropietario.getText());
		r.setIdRodamiento(i);
		r.setMedida_b1(Integer.valueOf(txtMedidaB1.getText()));
		r.setMedida_B2(Integer.valueOf(txtMedidaB2.getText()));
		r.setMedida_h(Integer.valueOf(txtMedidaH.getText()));
		
		StockVO s = new StockVO();
		s.setCant(Integer.valueOf(txtCantidad.getText()));
		s.setLote(Integer.valueOf(txtLote.getText()));
		s.setPrecio(Float.valueOf(txtPrecio.getText()));
		s.setPuntoDePedido(Integer.valueOf(txtPuntoDePedido.getText()));	
		
		r.setStock(s);		
		r.setTipo(txtTipo.getText());
		
		return r;
		
		
		
	}
	
	public void actualizarRodamientos(Vector<Object> filas)
	{
		Vector<String> columnas = new Vector<String>();
		columnas.add("Codigo");
		columnas.add("Caracteristica");
		columnas.add("Marca");
		columnas.add("Origen");
		
		jTableRodamientos = new JTable();
		System.out.println(filas);
		jScrollRodamiento.setViewportView(jTableRodamientos);
		jTableRodamientos.setModel(new DefaultTableModel(filas, columnas)
		{
			private static final long serialVersionUID = 1L;
			public boolean isCellEditable(int nroFila, int nroCol)
			{
				return false;
			}
		});
		
		jTableRodamientos.setLocation(new java.awt.Point(0,-1));
		jTableRodamientos.setEnabled(true);
		
		jTableRodamientos.addMouseListener(new MouseAdapter() 
		{
			public void mouseClicked(MouseEvent evt)
			{
				seleccionarRodamiento();
			}
		});	
		
	}
	
	private void seleccionarRodamiento()
	{
		int nroCol = 0;
		int nroLinea = jTableRodamientos.getSelectedRow();
		
		codigo = (jTableRodamientos.getValueAt(nroLinea, nroCol)).toString();
		caracteristica = (jTableRodamientos.getValueAt(nroLinea, 1)).toString();
		marca = (jTableRodamientos.getValueAt(nroLinea, 2)).toString();
		origen = (jTableRodamientos.getValueAt(nroLinea, 3)).toString();
		
		IdRodamientoVO idRodamientoVO= new IdRodamientoVO();
		idRodamientoVO.setCaracteristica(caracteristica);
		idRodamientoVO.setCodigo(codigo);
		idRodamientoVO.setMarca(marca);
		idRodamientoVO.setOrigen(origen);

		controladorVista.procesarSeleccionRodamiento(idRodamientoVO);
		
	}

	public void setControlador(ControladorVistas controladorVistas) {
		this.controladorVista = controladorVistas;
		
		
		
	}

	public void mostrarARtibutosRodamiento(RodamientoVO c) 
	{
		if(c.getStock() != null){
			Integer cant = c.getStock().getCant();
			txtCantidad.setText(cant.toString());
			Integer lote = c.getStock().getLote();
			txtLote.setText(lote.toString());
			Float precio = c.getStock().getPrecio();
			txtPrecio.setText(precio.toString());
			Integer puntoDePedido = c.getStock().getPuntoDePedido();
			txtPuntoDePedido.setText(puntoDePedido.toString());
		}
		
		txtCaracteristicas.setText(c.getIdRodamiento().getCaracteristica());
		txtCodigo.setText(c.getIdRodamiento().getCodigo());
		txtCodigoPropietario.setText(c.getCod_propietario());
		txtMarca.setText(c.getIdRodamiento().getMarca());
		Integer medidaB1 = c.getMedida_b1();
		txtMedidaB1.setText(medidaB1.toString());
		Integer medidaB2 = c.getMedida_B2();
		txtMedidaB2.setText(medidaB2.toString());
		Integer medidaH = c.getMedida_h();
		txtMedidaH.setText(medidaH.toString());
		txtOrigen.setText(c.getIdRodamiento().getOrigen());	
		txtTipo.setText(c.getTipo());
		
	}
}
